#include <buola/gui/x11/auto.h>

#include <buola/gui/x11/cx11matrix.h>

namespace buola { namespace gui { namespace x11 {

const CX11Matrix CX11Matrix::mIdentity;

#define FIXED(a)	((XFixed)((a)*65536))

CX11Matrix::CX11Matrix()
{
	SetIdentity();
}

CX11Matrix::~CX11Matrix()
{
}

void CX11Matrix::SetIdentity()
{
	matrix[0][0]=65536;
	matrix[0][1]=		0;
	matrix[0][2]=				0;
	matrix[1][0]=0;
	matrix[1][1]=		65536;
	matrix[1][2]=				0;
	matrix[2][0]=0;
	matrix[2][1]=		0;
	matrix[2][2]=				65536;
}

void CX11Matrix::SetScale(double pS)
{
	matrix[0][0]=FIXED(pS);
	matrix[0][1]=			0;
	matrix[0][2]=						0;
	matrix[1][0]=0;
	matrix[1][1]=			FIXED(pS);
	matrix[1][2]=						0;
	matrix[2][0]=0;
	matrix[2][1]=			0;
	matrix[2][2]=						65536;
}

void CX11Matrix::SetScale(double pSX,double pSY)
{
	matrix[0][0]=FIXED(pSX);
	matrix[0][1]=			0;
	matrix[0][2]=						0;
	matrix[1][0]=0;
	matrix[1][1]=			FIXED(pSY);
	matrix[1][2]=						0;
	matrix[2][0]=0;
	matrix[2][1]=			0;
	matrix[2][2]=						65536;
}

/*namespace x11*/ } /*namespace gui*/ } /*namespace buola*/ }
